/*
 * Confite.cpp
 *
 *  Created on: 23/10/2013
 *      Author: fernando
 */

#include "Confite.h"
#include <string>
#include "SDL.h"
#include <iostream>

using std::string;
using std::vector;


const char RUTA[] = "Imagenes/";
const char GOLOSINA[] = "golosina";
const char ROJ[] = "Roja";
const char AZU[] = "Azul";
const char AMA[] = "Amarilla";
const char VIO[] = "Violeta";
const char VER[] = "Verde";
const char EXTENSION[] = ".png";
const char ELIMINACION[] = "Eliminacion";
const int FRAMES_ELIMINACION = 8;


Confite::Confite(int colour, unsigned int x, unsigned int y) {
	color = colour;
	setImagen();
	posX = x;
	posY = y;
}

Confite::~Confite() {
}

void Confite::setImagen(){
	string rutaImagen = "";
	string rutaDest = "";
	rutaImagen += RUTA;
	rutaImagen += GOLOSINA;
	rutaDest += RUTA;
	switch(color){
	case ROJO:
		rutaImagen += ROJ;
		rutaImagen += EXTENSION;
		rutaDest += ROJ;
		rutaDest += ELIMINACION;
		imagen = SDL::load_image(rutaImagen);
		for (int i = 1; i <= FRAMES_ELIMINACION; i++){
			secDestruccion.push_back(
					SDL::load_image(rutaDest + itoa(i) + EXTENSION));
		}
		break;
	case AZUL:
		rutaImagen += AZU;
		rutaImagen += EXTENSION;
		rutaDest += AZU;
		rutaDest += ELIMINACION;
		imagen = SDL::load_image(rutaImagen);
		for (int i = 1; i <= FRAMES_ELIMINACION; i++){
			secDestruccion.push_back(
					SDL::load_image(rutaDest + itoa(i) + EXTENSION));
		}
		break;
	case AMARILLO:
		rutaImagen += AMA;
		rutaImagen += EXTENSION;
		rutaDest += AMA;
		rutaDest += ELIMINACION;
		imagen = SDL::load_image(rutaImagen);
		for (int i = 1; i <= FRAMES_ELIMINACION; i++){
			secDestruccion.push_back(
					SDL::load_image(rutaDest + itoa(i) + EXTENSION));
		}
		break;
	case VIOLETA:
		rutaImagen += VIO;
		rutaImagen += EXTENSION;
		rutaDest += VIO;
		rutaDest += ELIMINACION;
		imagen = SDL::load_image(rutaImagen);
		for (int i = 1; i <= FRAMES_ELIMINACION; i++){
			secDestruccion.push_back(
					SDL::load_image(rutaDest + itoa(i) + EXTENSION));
		}
		break;
	case VERDE:
		rutaImagen += VER;
		rutaImagen += EXTENSION;
		rutaDest += VER;
		rutaDest += ELIMINACION;
		imagen = SDL::load_image(rutaImagen);
		for (int i = 1; i <= FRAMES_ELIMINACION; i++){
			secDestruccion.push_back(
					SDL::load_image(rutaDest + itoa(i) + EXTENSION));
		}
		break;
	}
	////	Pone como transparente el color negro
	SDL_SetColorKey(imagen, SDL_SRCCOLORKEY,
			SDL_MapRGB(imagen->format, 0, 0, 0));
	for (vector<SDL_Surface*>::iterator It = secDestruccion.begin();
				It != secDestruccion.end(); ++It){
		SDL_SetColorKey((*It), SDL_SRCCOLORKEY,
				SDL_MapRGB((*It)->format, 0, 0, 0));
	}
}

